#ifndef __MC_GLOG_H__
#define __MC_GLOG_H__

#include <gflags/gflags.h>
#include <glog/logging.h>

using namespace std;
// #include "common/file_manager/file_manager.h"

// LOG(INFO) LOG(WARNING) LOG(ERROR) LOG(FATAL)

namespace common {
namespace glog {

    // 初始化
    inline void init(string glog_dir, string project_name){
        // string glog_dir = "/home/xxty/user_config/logs";
        string project_dir = glog_dir + "/" + project_name;
        // file_manager::CreateDir(project_dir);

        FLAGS_alsologtostderr = true;           // 日志同时输出到stderr
        FLAGS_colorlogtostderr = true;          // 设置记录到标准输出的颜色消息（如果终端支持）
        FLAGS_max_log_size = 5;                 // 单个日志文件大小上限（MB）, 如果设置为0将默认为1
        FLAGS_stop_logging_if_full_disk = true; // 当磁盘写满时，停止输出
        FLAGS_minloglevel = google::INFO;       // 只记录大于{minloglevel}等级的日志
        FLAGS_log_dir = project_dir;
        google::InitGoogleLogging(project_name.c_str());
        google::InstallFailureSignalHandler();  //将 coredumped信息输出到 stderr
        LOG(INFO) << "[glog] " << project_name << " init...";

        // std::string info_path = path_dir + "/" + name + "_info_";
        // std::string warning_path = path_dir + "/" + name + "_warn_";
        // std::string error_path = path_dir + "/" + name + "_error_";
        // google::SetLogDestination(google::INFO, info_path.c_str());
        // google::SetLogDestination(google::WARNING, warning_path.c_str());
        // google::SetLogDestination(google::ERROR, error_path.c_str());
    };

    // 关闭
    inline void shutdown(){
        google::ShutdownGoogleLogging();
    };    

};
};

#endif